BEGIN SCRIPT Inverted_Pendulum
-- sonar sample-02 / inverted pendulum
-- created: 05/18/2017 L&G_Software
-- all variables in [cm g us]-system


SET VALUE (NEW_SUPERGROUP_NR) -- create a new supergroup number
SET VALUE (NEW_GROUP_NR) -- create a new group number

-------------------------------------------------------------------
-- CARRIER
-------------------------------------------------------------------
CREATE ELEMENT (E1, POLYGON, 7)
DATA (-3, -2, 0, 3, -2, 0, 3, 3.5, 0)
DATA (2, 4.5, 0, -2, 4.5, 0, -3, 3.5, 0)
DATA (-3, -2, 0)
CREATE OBJECT (O1, PRISM, E1, EXTRUSION, 100)
SET PROPERTY (O1, SIM_MEMBER, FALSE)
SET PROPERTY (O1, NAME, "Traeger")
SET PROPERTY (O1, GROUP_NR, LAST_GROUP_NR)
SET GROUP_PROPERTY (LAST_GROUP_NR, SUPERGROUP_NR, LAST_SUPERGROUP_NR)

-------------------------------------------------------------------
-- TABLE TRACK
-------------------------------------------------------------------
CREATE ELEMENT (E2, POLYGON, 5)
DATA (-0.5, 3.5, 0, 0.5, 3.5, 0, 0.5, 6, 0)
DATA (-0.5, 6, 0, -0.5, 3.5, 0)
CREATE OBJECT (O2, PRISM, E2, EXTRUSION, 100)
SET PROPERTY (O2, GROUP_NR, LAST_GROUP_NR)
SET PROPERTY (O2, NAME, "Schiene Oben")

CREATE ELEMENT (E3, POLYGON, 5)
DATA (-4.5, 1, 0, -2, 1, 0, -2, 2, 0)
DATA (-4.5, 2, 0, -4.5, 1, 0)
CREATE OBJECT (O3, PRISM, E3, EXTRUSION, 100)
SET PROPERTY (O3, GROUP_NR, LAST_GROUP_NR)
SET PROPERTY (O3, NAME, "Schiene Links")

CREATE ELEMENT (E4, POLYGON, 5)
DATA (2, 1, 0, 4.5, 1, 0, 4.5, 2, 0)
DATA (2, 2, 0, 2, 1, 0)
CREATE OBJECT (O4, PRISM, E4, EXTRUSION, 100)
SET PROPERTY (O4, GROUP_NR, LAST_GROUP_NR)
SET PROPERTY (O2, NAME, "Schiene Rechts")

-- Links (carrier and table track)
CREATE LINK (K1, NORMAL, o1, o2, 0, 3.5, -50)
CREATE LINK (K1, NORMAL, o1, o2, 0, 5.5, -50)
CREATE LINK (K1, NORMAL, o1, o2, 0, 3.5, 50)
CREATE LINK (K1, NORMAL, o1, o2, 0, 5.5, 50)

CREATE LINK (K1, NORMAL, o1, o3, -2, 1.5, -50)
CREATE LINK (K1, NORMAL, o1, o3, -4, 1.5, -50)
CREATE LINK (K1, NORMAL, o1, o3, -2, 1.5, 50)
CREATE LINK (K1, NORMAL, o1, o3, -4, 1.5, 50)

CREATE LINK (K1, NORMAL, o1, o4, 2, 1.5, -50)
CREATE LINK (K1, NORMAL, o1, o4, 4, 1.5, -50)
CREATE LINK (K1, NORMAL, o1, o4, 2, 1.5, 50)
CREATE LINK (K1, NORMAL, o1, o4, 4, 1.5, 50)

SET GROUP_PROPERTY (LAST_GROUP_NR, COLOR_STD, 21)
SET GROUP_PROPERTY (LAST_GROUP_NR, SIM_MEMBER, FALSE)
SET GROUP_PROPERTY (LAST_GROUP_NR, SUPERGROUP_NR, LAST_SUPERGROUP_NR)
SET VALUE (NEW_GROUP_NR) -- create a new group number

-------------------------------------------------------------------
-- SLIDER (U-PROFILE)
-------------------------------------------------------------------
CREATE ELEMENT (E5, QUAD_STRIP, 8)
DATA (-4.75, -1, 0, -5.75, -1, 0)
DATA (-4.75, 6.25, 0, -5.75, 7.25, 0)
DATA (4.75, 6.25, 0, 5.75, 7.25, 0)
DATA (4.75, -1, 0, 5.75, -1, 0)
CREATE OBJECT (O5, PRISM_QUAD_STRIP, E5, EXTRUSION, 20)
SET PROPERTY (O5, GROUP_NR, LAST_GROUP_NR)
SET PROPERTY (O5, NAME, "Wagen")

SET GROUP_PROPERTY (LAST_GROUP_NR, COLOR_STD, 19)
SET GROUP_PROPERTY (LAST_GROUP_NR, SUPERGROUP_NR, LAST_SUPERGROUP_NR)
SET VALUE (NEW_GROUP_NR) -- create a new group number

-------------------------------------------------------------------
-- WHEELS + BOLTS
-------------------------------------------------------------------
-- top side
CREATE OBJECT (O6,  CYLINDER, -1.75, 4.75, -8, -1.75, 5.75, -8, 1.25) -- wheels
CREATE OBJECT (O7,  CYLINDER,  1.75, 4.75, -8,  1.75, 5.75, -8, 1.25)
CREATE OBJECT (O8,  CYLINDER, -1.75, 4.75,  8, -1.75, 5.75,  8, 1.25)
CREATE OBJECT (O9,  CYLINDER,  1.75, 4.75,  8,  1.75, 5.75,  8, 1.25)
SET PROPERTY (O6, GROUP_NR, LAST_GROUP_NR)
SET PROPERTY (O7, GROUP_NR, LAST_GROUP_NR)
SET PROPERTY (O8, GROUP_NR, LAST_GROUP_NR)
SET PROPERTY (O9, GROUP_NR, LAST_GROUP_NR)

-- left side
CREATE OBJECT (O14, CYLINDER, -4.25,  3.25, -8, -3.25,  3.25, -8, 1.25) -- wheels
CREATE OBJECT (O15, CYLINDER, -4.25, -0.25, -8, -3.25, -0.25, -8, 1.25)
CREATE OBJECT (O16, CYLINDER, -4.25,  3.25,  8, -3.25,  3.25,  8, 1.25)
CREATE OBJECT (O17, CYLINDER, -4.25, -0.25,  8, -3.25, -0.25,  8, 1.25)
SET PROPERTY (O14, GROUP_NR, LAST_GROUP_NR)
SET PROPERTY (O15, GROUP_NR, LAST_GROUP_NR)
SET PROPERTY (O16, GROUP_NR, LAST_GROUP_NR)
SET PROPERTY (O17, GROUP_NR, LAST_GROUP_NR)

-- right side
CREATE OBJECT (O22, CYLINDER, 4.25,  3.25, -8, 3.25,  3.25, -8, 1.25) -- wheels
CREATE OBJECT (O23, CYLINDER, 4.25, -0.25, -8, 3.25, -0.25, -8, 1.25)
CREATE OBJECT (O24, CYLINDER, 4.25,  3.25,  8, 3.25,  3.25,  8, 1.25)
CREATE OBJECT (O25, CYLINDER, 4.25, -0.25,  8, 3.25, -0.25,  8, 1.25)
SET PROPERTY (O22, GROUP_NR, LAST_GROUP_NR)
SET PROPERTY (O23, GROUP_NR, LAST_GROUP_NR)
SET PROPERTY (O24, GROUP_NR, LAST_GROUP_NR)
SET PROPERTY (O25, GROUP_NR, LAST_GROUP_NR)

SET GROUP_PROPERTY (LAST_GROUP_NR, COLOR_STD, 12)
SET GROUP_PROPERTY (LAST_GROUP_NR, SUPERGROUP_NR, LAST_SUPERGROUP_NR)
SET VALUE (NEW_GROUP_NR) -- create a new group number


CREATE OBJECT (O10, CYLINDER, -1.75, 4.65, -8, -1.75, 7.3, -8, 0.25) -- bolts
CREATE OBJECT (O11, CYLINDER,  1.75, 4.65, -8,  1.75, 7.3, -8, 0.25)
CREATE OBJECT (O12, CYLINDER, -1.75, 4.65,  8, -1.75, 7.3,  8, 0.25)
CREATE OBJECT (O13, CYLINDER,  1.75, 4.65,  8,  1.75, 7.3,  8, 0.25)
SET PROPERTY (O10, GROUP_NR, LAST_GROUP_NR)
SET PROPERTY (O11, GROUP_NR, LAST_GROUP_NR)
SET PROPERTY (O12, GROUP_NR, LAST_GROUP_NR)
SET PROPERTY (O13, GROUP_NR, LAST_GROUP_NR)

CREATE OBJECT (O18, CYLINDER, -5.8,  3.25, -8, -3.15,  3.25, -8, 0.25) -- bolts
CREATE OBJECT (O19, CYLINDER, -5.8, -0.25, -8, -3.15, -0.25, -8, 0.25)
CREATE OBJECT (O20, CYLINDER, -5.8,  3.25,  8, -3.15,  3.25,  8, 0.25)
CREATE OBJECT (O21, CYLINDER, -5.8, -0.25,  8, -3.15, -0.25,  8, 0.25)
SET PROPERTY (O18, GROUP_NR, LAST_GROUP_NR)
SET PROPERTY (O19, GROUP_NR, LAST_GROUP_NR)
SET PROPERTY (O20, GROUP_NR, LAST_GROUP_NR)
SET PROPERTY (O21, GROUP_NR, LAST_GROUP_NR)

CREATE OBJECT (O26, CYLINDER, 5.8,  3.25, -8, 3.15,  3.25, -8, 0.25) -- bolts
CREATE OBJECT (O27, CYLINDER, 5.8, -0.25, -8, 3.15, -0.25, -8, 0.25)
CREATE OBJECT (O28, CYLINDER, 5.8,  3.25,  8, 3.15,  3.25,  8, 0.25)
CREATE OBJECT (O29, CYLINDER, 5.8, -0.25,  8, 3.15, -0.25,  8, 0.25)
SET PROPERTY (O26, GROUP_NR, LAST_GROUP_NR)
SET PROPERTY (O27, GROUP_NR, LAST_GROUP_NR)
SET PROPERTY (O28, GROUP_NR, LAST_GROUP_NR)
SET PROPERTY (O29, GROUP_NR, LAST_GROUP_NR)

SET GROUP_PROPERTY (LAST_GROUP_NR, COLOR_STD, 22)
SET GROUP_PROPERTY (LAST_GROUP_NR, SUPERGROUP_NR, LAST_SUPERGROUP_NR)
SET VALUE (NEW_GROUP_NR) -- create a new group number

-------------------------------------------------------------------
-- LINKS
-------------------------------------------------------------------
-- top side
CREATE LINK (K1, NORMAL, o6, o10, -1.75, 4.75, -8) -- Links (wheels + bolts)
CREATE LINK (K2, NORMAL, o6, o10, -1.75, 5.75, -8)
CREATE LINK (K3, NORMAL, o7, o11,  1.75, 4.75, -8)
CREATE LINK (K4, NORMAL, o7, o11,  1.75, 5.75, -8)
CREATE LINK (K5, NORMAL, o8, o12, -1.75, 4.75, 8)
CREATE LINK (K6, NORMAL, o8, o12, -1.75, 5.75, 8)
CREATE LINK (K7, NORMAL, o9, o13,  1.75, 4.75, 8)
CREATE LINK (K8, NORMAL, o9, o13,  1.75, 5.75, 8)

CREATE LINK (K10, NORMAL, o5, o10, -1.75, 5.50, -8) -- Links (bolts + U-profile)
CREATE LINK (K11, NORMAL, o5, o10, -1.75, 7.25, -8)
CREATE LINK (K12, NORMAL, o5, o11,  1.75, 5.50, -8)
CREATE LINK (K13, NORMAL, o5, o11,  1.75, 7.25, -8)
CREATE LINK (K14, NORMAL, o5, o12, -1.75, 5.50, 8)
CREATE LINK (K15, NORMAL, o5, o12, -1.75, 7.25, 8)
CREATE LINK (K16, NORMAL, o5, o13,  1.75, 5.50, 8)
CREATE LINK (K17, NORMAL, o5, o13,  1.75, 7.25, 8)

-- left side
CREATE LINK (K18, NORMAL, o14, o18, -4.25,  3.25, -8) -- Links (wheels + bolts)
CREATE LINK (K19, NORMAL, o14, o18, -3.25,  3.25, -8)
CREATE LINK (K20, NORMAL, o15, o19, -4.25, -0.25, -8)
CREATE LINK (K21, NORMAL, o15, o19, -3.25, -0.25, -8)
CREATE LINK (K22, NORMAL, o16, o20, -4.25,  3.25, 8)
CREATE LINK (K23, NORMAL, o16, o20, -3.25,  3.25, 8)
CREATE LINK (K24, NORMAL, o17, o21, -4.25, -0.25, 8)
CREATE LINK (K25, NORMAL, o17, o21, -3.25, -0.25, 8)

CREATE LINK (K26, NORMAL, o5, o18, -5.5, 3.25, -8) -- Links (Bolts + U-Profile)
CREATE LINK (K27, NORMAL, o5, o18, -3.5, 3.25, -8)
CREATE LINK (K28, NORMAL, o5, o19, -5.5,-0.25, -8)
CREATE LINK (K29, NORMAL, o5, o19, -3.5,-0.25, -8)
CREATE LINK (K30, NORMAL, o5, o20, -5.5, 3.25, 8)
CREATE LINK (K31, NORMAL, o5, o20, -3.5, 3.25, 8)
CREATE LINK (K32, NORMAL, o5, o21, -5.5,-0.25, 8)
CREATE LINK (K33, NORMAL, o5, o21, -3.5,-0.25, 8)

-- right side
CREATE LINK (K34, NORMAL, o22, o26, 4.25,  3.25, -8) -- Links (wheels + bolts)
CREATE LINK (K35, NORMAL, o22, o26, 3.25,  3.25, -8)
CREATE LINK (K36, NORMAL, o23, o27, 4.25, -0.25, -8)
CREATE LINK (K37, NORMAL, o23, o27, 3.25, -0.25, -8)
CREATE LINK (K38, NORMAL, o24, o28, 4.25,  3.25, 8)
CREATE LINK (K39, NORMAL, o24, o28, 3.25,  3.25, 8)
CREATE LINK (K40, NORMAL, o25, o29, 4.25, -0.25, 8)
CREATE LINK (K41, NORMAL, o25, o29, 3.25, -0.25, 8)

CREATE LINK (K42, NORMAL, o5, o26, 5.5, 3.25, -8) -- Links (bolts + U-profile)
CREATE LINK (K43, NORMAL, o5, o26, 3.5, 3.25, -8)
CREATE LINK (K44, NORMAL, o5, o27, 5.5,-0.25, -8)
CREATE LINK (K45, NORMAL, o5, o27, 3.5,-0.25, -8)
CREATE LINK (K46, NORMAL, o5, o28, 5.5, 3.25, 8)
CREATE LINK (K47, NORMAL, o5, o28, 3.5, 3.25, 8)
CREATE LINK (K48, NORMAL, o5, o29, 5.5,-0.25, 8)
CREATE LINK (K49, NORMAL, o5, o29, 3.5,-0.25, 8)

-------------------------------------------------------------------
-- PENDULUM
-------------------------------------------------------------------
CREATE OBJECT (O30,  CYLINDER, 5.8, 3.0, 0, 7.8, 3.0, 0, 2) -- pendulum hub
SET PROPERTY (O30, SUPERGROUP_NR, LAST_SUPERGROUP_NR)
SET PROPERTY (O30, INTERACT_MODE, NO_INTERACTION)
SET PROPERTY (O30, COLOR_STD, 15)
SET PROPERTY (O30, NAME, "Pendelnabe")

CREATE OBJECT (O31,  CYLINDER, 6.8, 3.0, 0, 6.8, 50.0, 0, 0.8) -- pendulum
SET PROPERTY (O31, SUPERGROUP_NR, LAST_SUPERGROUP_NR)
SET PROPERTY (O31, INTERACT_MODE, NO_INTERACTION)
SET PROPERTY (O31, COLOR_STD, 15)
SET PROPERTY (O2, NAME, "Pendelstab")

CREATE LINK (K50, NORMAL, o5, o30, 5.5, 3.0, 0) -- pendulum hub and slider
CREATE LINK (K51, NORMAL, o5, o30, 8.0, 3.0, 0)
CREATE LINK (K52, NORMAL, o30, o31, 6.8, 3.0, 0) -- pendulum + pendulum hub
CREATE LINK (K53, NORMAL, o30, o31, 6.8, 5.0, 0)
CREATE LINK (K54, NORMAL, o30, o31, 6.0, 4.0, 0) -- pendulum = rotation fixed

-------------------------------------------------------------------
-- PROPERTIES
-------------------------------------------------------------------
SET SUPERGROUP_PROPERTY (LAST_SUPERGROUP_NR, C_LINK, NORMAL, 0.1)
SET SUPERGROUP_PROPERTY (LAST_SUPERGROUP_NR, DENSITY, 2.7) -- aluminum

-- 1. generally set all objects to 'NO_INTERACTION' and 
-- 2. set specific bilateral interactions by a positive rule
SET SUPERGROUP_PROPERTY (LAST_SUPERGROUP_NR, INTERACT_MODE, NO_INTERACTION) 
CREATE IACT_RULE (O2, O6, TRUE)
CREATE IACT_RULE (O2, O7, TRUE)
CREATE IACT_RULE (O2, O8, TRUE)
CREATE IACT_RULE (O2, O9, TRUE)
CREATE IACT_RULE (O3, O14, TRUE)
CREATE IACT_RULE (O3, O15, TRUE)
CREATE IACT_RULE (O3, O16, TRUE)
CREATE IACT_RULE (O3, O17, TRUE)
CREATE IACT_RULE (O4, O22, TRUE)
CREATE IACT_RULE (O4, O23, TRUE)
CREATE IACT_RULE (O4, O24, TRUE)
CREATE IACT_RULE (O4, O25, TRUE)

-------------------------------------------------------------------
-- GLOBAL VALUES
-------------------------------------------------------------------
-- friction
SET VALUE (C_FRICTION_STATIC = 0.2)
SET VALUE (C_FRICTION_DYNAMIC = 0.2)
SET STATE (FRICTION, ON) -- switched on

-- gravitation
CREATE FIELD(Gravitation, 0.0, -1.0, 0.0, 9.81E-10)

-- max. timestep
SET VALUE(TIMESTEP_MAX = 0.5) -- 0.5E-6s (crash bei 0.9)

-- set preferences
SET PREFERENCE (IACT_CYCLE_CALC_PERIOD, 1000)

DESELECT ALL
-- end of script
